package com.whmall.service.crm.api;

import com.whmall.component.entity.dto.PageReqDTO;
import com.whmall.component.entity.dto.PageRspDTO;
import com.whmall.service.crm.entity.dto.invoice.OverseasLoanCompanyAddReqDTO;
import com.whmall.service.crm.entity.dto.invoice.OverseasLoanCompanyQueryReqDTO;
import com.whmall.service.crm.entity.dto.invoice.OverseasLoanCompanyRspDTO;
import com.whmall.service.crm.entity.dto.invoice.OverseasLoanCompanyUpdateReqDTO;

import java.util.List;

public interface OverseasLoanCompanyApi {

    /**
     * 查询 海外货贷公司  分页
     * @param reqDTO
     * @param pageReqDTO
     * @return
     */
    PageRspDTO<OverseasLoanCompanyRspDTO> query(OverseasLoanCompanyQueryReqDTO reqDTO, PageReqDTO pageReqDTO);

    /**
     * 新建海外货贷公司
     *
     * @param reqDTO     创建海外货贷公司数据DTO
     * @return 返回新创建公司ID
     */
    Long create(OverseasLoanCompanyAddReqDTO reqDTO);

    /**
     * 编辑海外货贷公司
     *
     * @param reqDTO     编辑公司数据DTO
     * @return 返回编辑海外货贷公司ID
     */
    void update(OverseasLoanCompanyUpdateReqDTO reqDTO);

    /**
     * 启用海外货贷公司
     * @param id            海外货贷公司id
     * @param employeeId    操作人
     */
    void enable(Long id, Long employeeId);

    /**
     * 通过英文名称获取货代公司
     * @param nameEn
     * @return
     */
    OverseasLoanCompanyRspDTO findByNameEn(String nameEn);

    /**
     * 根据货代公司ID，查询货代公司
     * @param ids
     * @return
     */
    List<OverseasLoanCompanyRspDTO> listByIds(List<Long> ids);

    /**
     * 根据ID查询
     * @param id
     * @return
     */
    OverseasLoanCompanyRspDTO findById(Long id);

}
